package com.zxjbyte.yiyi.module.system.domain.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * @Author zhangxingjia
 * @Date 2023/3/13 11:32
 * @Version: 1.0
 */
@Data
@TableName("sys_operate_log")
public class OperateLogPO implements Serializable {

    private static final long serialVersionUID = 8205914429556807852L;

    // 参数最大长度
    public static final int PARAMS_MAX_LENGTH = 8000;
    // 结果最大长度
    public static final int RESULT_DATA_MAX_LENGTH = 5000;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    // 用户编号
    @TableField("user_id")
    private Long userId;

    // 租户编号
    @TableField("tenant_id")
    private String tenantId;

    // 应用名
    @TableField("application_name")
    private String applicationName;

    // 模块
    @TableField("module")
    private String module;

    // 操作名
    @TableField("name")
    private String name;

    // 操作分类
    @TableField("type")
    private Integer type;

    // 用户ip
    @TableField("user_ip")
    private String userIp;

    // 浏览器UA
    @TableField("user_agent")
    private String userAgent;

    // 请求方式
    @TableField("request_method")
    private String requestMethod;

    // 请求地址
    @TableField("request_uri")
    private String requestUri;

    // 开始时间
    @TableField("start_time")
    private Date startTime;

    // 执行时长
    @TableField("duration")
    private Integer duration;

    // 方法名
    @TableField("method_name")
    private String methodName;

    // 类名
    @TableField("class_name")
    private String className;

    // 参数
    @TableField("params")
    private String params;

    // 结果数据
    @TableField("result_data")
    private String resultData;

    // 扩展字段
    @TableField("exts")
    private String exts;

    // 创建用户
    @TableField("create_user")
    private String createUser;

    // 创建时间
    @TableField("create_time")
    private Date createTime;

    // 是否删除
    @TableField("deleted")
    @TableLogic
    private Boolean deleted;

}
